/**
 * 
 */
package vue.session;

import java.util.Set;

import model.session.PreprocessorExecutionBlock;

/**
 * A {@link IGPreprocessorBlock} is a block related to a preprocessor execution in a session, it is
 * somehow related to {@link PreprocessorExecutionBlock}.
 * 
 * @author GRONOWSKI Stephane svan001@aol.com
 * 
 *         igsat 2010
 * 
 */
public class IGPreprocessorBlock extends IGBlock {

	protected PreprocessorExecutionBlock	preproc	= null;

	/**
	 * Create a {@link IGPreprocessorBlock}.
	 * 
	 * @param preproc
	 *            solver associate
	 */
	public IGPreprocessorBlock(PreprocessorExecutionBlock preproc) {
		this.preproc = preproc;
	}

	/**
	 * Create a {@link IGPreprocessorBlock}.
	 * 
	 * @param preproc
	 *            preprocessor associate
	 * @param listeners
	 *            set of {@link IIGModificationListener}
	 */
	public IGPreprocessorBlock(PreprocessorExecutionBlock preproc, Set<IIGModificationListener> listeners) {
		super(listeners);

		this.preproc = preproc;
	}

	/**
	 * Return the {@link PreprocessorExecutionBlock} associate.
	 * 
	 * @return the {@link PreprocessorExecutionBlock} associate.
	 */
	public PreprocessorExecutionBlock getPreproc() {
		return preproc;
	}

	/**
	 * Set the {@link PreprocessorExecutionBlock} associate to the block.
	 * 
	 * @param preproc
	 *            the preprocessor to set
	 */
	public void setPreproc(PreprocessorExecutionBlock preproc) {
		this.preproc = preproc;
	}
}
